package com.kamistoat.ruoyi.ruoyicommonsecurity.annotation;

import com.kamistoat.ruoyi.ruoyicommonsecurity.config.ApplicationConfig;
import com.kamistoat.ruoyi.ruoyicommonsecurity.feign.FeignAutoConfiguration;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.context.annotation.Import;
import org.springframework.scheduling.annotation.EnableAsync;

import java.lang.annotation.*;

/**
 * 使用该注解时直接为全局导入两个Config元类，以及设置 Dao层位置
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
// 声明通过aop框架暴露该代理对象，使得AOPContext能够访问到
@EnableAspectJAutoProxy(exposeProxy = true)
// 是 mybatis下的注释，用于指定要扫描的 三件套中的Dao层。在商城业务中，是在每一个模块的主启动类中使用该注解声明当前模块的Dao层位置
@MapperScan("com.kamistoat.**.dao")
// 开启线程异步执行
@EnableAsync
// 自动加载类，
@Import({ApplicationConfig.class, FeignAutoConfiguration.class})
public @interface EnableCustomConfig {
}
